Run Everything in the Browser
The single best decision I made was going fully browser-based instead of building a native app.
No downloads. No installers. No platform compatibility issues. The user opens a tab and starts animating. That one constraint eliminated an entire class of infrastructure problems before they could exist.
For the rendering engine, I leaned hard into what browsers already give you for free:
- Canvas API for real-time frame rendering
- Web Workers for offloading heavy computation off the main thread
- BroadcastChannel API to connect FlashFX Animator and FlashFX Editor, letting them talk to each other without a backend relay
The browser is an underrated runtime. Most developers treat it like a thin client. Treat it like a full application platform and you stop paying for servers to do things the client can handle itself.
Build the Stack You Can Actually Maintain
I did not pick tools because they were trendy. I picked tools I could move fast in alone, or with a very small team.
The core stack:
- TypeScript + React for the UI layer. Strict typing catches bugs before runtime, and React's component model maps cleanly to a timeline-based editor interface.
- Three.js for the 3D engine inside Animator. It runs entirely client-side, no GPU server required.
- Custom binary .ffx format instead of Lottie JSON. The result is files 10 to 15 times smaller, which matters a lot when users are exporting animations in the browser.
For the backend, keep it boring. A simple Node server, SQLite for persistence in early stages, and no microservices until you have a concrete reason to split things apart. Complexity you add early is complexity you debug forever.
Grow Without a Marketing Budget
FlashFX went from zero to 15,200 users organically. No paid ads. No sponsored posts.
What actually worked:
- Discord first. Building a 3,400-member community gave us a direct feedback loop that no analytics tool can replicate. Users flagged bugs in real time, requested features, and became the first beta testers.
- SEO as a long-term asset. Competitor comparison articles ("FlashFX vs After Effects", "FlashFX vs Canva") target users who are already searching for alternatives. That traffic compounds over time.
- Waitlist as social proof. 2,000 waitlist signups before the beta opened signaled demand to users, to potential partners, and later, to investors.
The insight is that distribution compounds the same way code does. The earlier you start, the more it accumulates.
Use AI to Multiply Your Output
A two-person team shipping a full creative suite is only possible if you use AI aggressively and correctly.
How I actually use it:
- GitHub Copilot in VS Code for day-to-day coding. Not Cursor, not expensive API subscriptions. Copilot's per-request pricing means you can run long agentic sessions, entire refactors, fixing cascading errors, and the cost barely registers.
- Claude for architecture decisions and writing. Investor emails, SEO articles, product copy. Anything where a rough draft costs more time than it should.
- Prompt discipline matters more than model choice. A detailed prompt with explicit success criteria and edge cases will outperform a vague prompt sent to a better model every time.
The goal is not to use AI everywhere. The goal is to identify the 20% of tasks that eat 80% of your time and eliminate them.
Top comments (0)