<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Aymen Damak</title>
    <description>The latest articles on DEV Community by Aymen Damak (@aymen_damak_cca84355af61f).</description>
    <link>https://dev.to/aymen_damak_cca84355af61f</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4158378%2F6414e5f3-7dae-4b32-948f-dda78af95768.jpg</url>
      <title>DEV Community: Aymen Damak</title>
      <link>https://dev.to/aymen_damak_cca84355af61f</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aymen_damak_cca84355af61f"/>
    <language>en</language>
    <item>
      <title>I spent a year building the portfolio tracker I couldn't find anywhere</title>
      <dc:creator>Aymen Damak</dc:creator>
      <pubDate>Fri, 02 Oct 2026 19:09:47 +0000</pubDate>
      <link>https://dev.to/aymen_damak_cca84355af61f/i-spent-a-year-building-the-portfolio-tracker-i-couldnt-find-anywhere-1gn3</link>
      <guid>https://dev.to/aymen_damak_cca84355af61f/i-spent-a-year-building-the-portfolio-tracker-i-couldnt-find-anywhere-1gn3</guid>
      <description>&lt;h2&gt;
  
  
  The problem that wouldn't go away
&lt;/h2&gt;

&lt;p&gt;I invest in Bitcoin, stocks and ETFs. &lt;br&gt;
Nothing exotic — just a regular retail investor &lt;br&gt;
trying to keep track of what I own and &lt;br&gt;
whether I'm actually making money.&lt;/p&gt;

&lt;p&gt;The problem: no single app handled all three properly.&lt;/p&gt;

&lt;p&gt;Delta is great for crypto. But my ETFs? Not really.&lt;br&gt;
My brokerage app shows my stocks but not my BTC.&lt;br&gt;
And none of them calculated my real PnL because &lt;br&gt;
none of them included transaction fees.&lt;/p&gt;

&lt;p&gt;So I'd end up with a Google Sheet. Half-broken, &lt;br&gt;
always outdated, and always wrong because I kept &lt;br&gt;
forgetting to add broker fees.&lt;/p&gt;

&lt;p&gt;One evening I spent 2 hours trying to calculate &lt;br&gt;
my real performance since I started investing.&lt;br&gt;
I ended up with a number I didn't trust.&lt;/p&gt;

&lt;p&gt;That was the moment I decided to build Sway.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why fees matter more than you think
&lt;/h2&gt;

&lt;p&gt;Most portfolio trackers show you a PnL based on &lt;br&gt;
the difference between current price and &lt;br&gt;
your average buy price.&lt;/p&gt;

&lt;p&gt;That's not your real profit.&lt;/p&gt;

&lt;p&gt;Your real profit is what you'd actually pocket &lt;br&gt;
if you sold everything today, after every fee &lt;br&gt;
you've paid along the way.&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You buy 0.1 BTC at $60,000, you pay $6,000 + $15 fee&lt;/li&gt;
&lt;li&gt;BTC goes to $65,000, your position is worth $6,500&lt;/li&gt;
&lt;li&gt;Most trackers show: +$500 (+8.3%)&lt;/li&gt;
&lt;li&gt;Reality: you paid $6,015, so your real gain is +$485 (+8.06%)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Small difference? Yes. But across dozens of &lt;br&gt;
transactions over years, it compounds into &lt;br&gt;
a significantly distorted picture of your performance.&lt;/p&gt;

&lt;p&gt;Sway bakes every fee into the cost basis calculation. &lt;br&gt;
The PnL you see is the real one.&lt;/p&gt;




&lt;h2&gt;
  
  
  The technical decisions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Stack:&lt;/strong&gt; Angular/Ionic, Node.js/Express, &lt;br&gt;
PostgreSQL, deployed on CloudFront + Render.&lt;/p&gt;

&lt;p&gt;I chose Angular because I know it well and &lt;br&gt;
Ionic gives me a path to mobile without &lt;br&gt;
maintaining two codebases.&lt;/p&gt;

&lt;p&gt;PostgreSQL for the portfolio math. Complex &lt;br&gt;
calculations with historical data need a real &lt;br&gt;
relational database, not a document store.&lt;/p&gt;

&lt;p&gt;Render for the backend. Simple, affordable, &lt;br&gt;
no DevOps overhead for a solo developer.&lt;/p&gt;

&lt;p&gt;CloudFront + S3 for the frontend. Fast global &lt;br&gt;
delivery, scales automatically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The hardest part: price history.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every time a user adds a backdated transaction, &lt;br&gt;
Sway needs to rebuild the portfolio value history &lt;br&gt;
from that date forward. Getting this right, &lt;br&gt;
especially with multiple assets, multiple currencies, &lt;br&gt;
and fees, took longer than anything else.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The second hardest part: multi-currency.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A French investor with a PEA in euros and BTC &lt;br&gt;
in dollars needs everything converted and &lt;br&gt;
displayed consistently. Exchange rates, historical &lt;br&gt;
rates, real-time rates. It's a lot of moving parts.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Sway does today
&lt;/h2&gt;

&lt;p&gt;After a year of building, here's where it stands:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One dashboard for Bitcoin, stocks (NYSE + Euronext) and ETFs&lt;/li&gt;
&lt;li&gt;Real PnL with every transaction fee included&lt;/li&gt;
&lt;li&gt;Realized vs unrealized PnL&lt;/li&gt;
&lt;li&gt;Average cost basis per position (average cost or FIFO)&lt;/li&gt;
&lt;li&gt;Prices refreshed every 5 minutes, EUR/USD auto-converted&lt;/li&gt;
&lt;li&gt;Portfolio value charts from 1 week to all-time&lt;/li&gt;
&lt;li&gt;30-day performance heatmap&lt;/li&gt;
&lt;li&gt;DCA simulator — what-if calculator for future purchases&lt;/li&gt;
&lt;li&gt;AI assistant to query your own portfolio&lt;/li&gt;
&lt;li&gt;Weekly Monday email recap with AI-written insight&lt;/li&gt;
&lt;li&gt;Privacy mode, PIN lock, encrypted data&lt;/li&gt;
&lt;li&gt;CSV import (Coinbase/Binance formats)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Free tier: 15 assets, 30 days history.&lt;br&gt;
First 500 signups get Premium free for 1 year.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I learned building this
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Build for your own problem first.&lt;/strong&gt;&lt;br&gt;
I am the target user. Every feature I built, &lt;br&gt;
I needed myself. That kept me focused and &lt;br&gt;
stopped me from building things nobody asked for.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. The switching cost is the real challenge.&lt;/strong&gt;&lt;br&gt;
The hardest thing isn't building the product. &lt;br&gt;
It's convincing people to move away from &lt;br&gt;
whatever they're already using, even if it's &lt;br&gt;
a broken spreadsheet. Habit is powerful.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. The weekly email is underrated.&lt;/strong&gt;&lt;br&gt;
The feature that took the least time to build &lt;br&gt;
might be the most important for retention. &lt;br&gt;
A Monday morning email showing your portfolio &lt;br&gt;
performance creates a habit loop without &lt;br&gt;
requiring the user to open the app.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Solo development is hard but doable.&lt;/strong&gt;&lt;br&gt;
One year, one developer, one product. &lt;br&gt;
No team, no funding, no safety net. &lt;br&gt;
The only thing that kept me going was &lt;br&gt;
using the product myself every day.&lt;/p&gt;




&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;If you invest in Bitcoin, stocks or ETFs &lt;br&gt;
and you've ever tried to calculate your &lt;br&gt;
real performance across all your positions — &lt;br&gt;
Sway is built for you.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://www.sway-app.space?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=launch" rel="noopener noreferrer"&gt;https://www.sway-app.space?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=launch&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;First 500 signups get Premium free for 1 year.&lt;/p&gt;

&lt;p&gt;Built by one developer. Feedback welcome.&lt;/p&gt;

</description>
      <category>buildinpublic</category>
      <category>saas</category>
      <category>showdev</category>
    </item>
    <item>
      <title>I invest in BTC, stocks and ETFs. No single app 
tracked all three with real PnL (fees included). 
So I spent a year building Sway. Free — first 500 
users get Premium for 1 year.</title>
      <dc:creator>Aymen Damak</dc:creator>
      <pubDate>Fri, 02 Oct 2026 19:09:28 +0000</pubDate>
      <link>https://dev.to/aymen_damak_cca84355af61f/i-invest-in-btc-stocks-and-etfs-no-single-app-tracked-all-three-with-real-pnl-fees-5glc</link>
      <guid>https://dev.to/aymen_damak_cca84355af61f/i-invest-in-btc-stocks-and-etfs-no-single-app-tracked-all-three-with-real-pnl-fees-5glc</guid>
      <description></description>
    </item>
  </channel>
</rss>
