Skip to content
View icflorescu's full-sized avatar
🧑‍💻
Building stuff with React, Next.js/TanStack, tRPC.io, Node.js, PostgreSQL
🧑‍💻
Building stuff with React, Next.js/TanStack, tRPC.io, Node.js, PostgreSQL

Sponsors

@grahampcharles
@kernie66
@syntaxfm

Block or report icflorescu

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
icflorescu/README.md

In a nutshell

Stars on GitHub repos Followers on GitHub Sponsor my work

A hands-on fractional CTO, product builder and open-source author from Bucharest, Romania, EU, building for the web since 1998 (résumé: view / download).
I take software products from a blank repo to production, and stay to run them for a decade. I still write production code; I've also learned which code isn't worth writing.
Curious by nature, an avid reader of fantasy, fiction, history & tech-related literature, always looking to understand how things work and to make them work better.

Currently building: swapp.ro

The swapp.ro dashboard: deadlines, overdue invoices and money owed, at a glance

A product I design, build and run on my own: invoicing and single-entry accounting for Romanian freelancers (PFA, ÎI and PFI) who aren't VAT-registered. You record each transaction once, and the app works out the rest:

  • invoices in RON or foreign currencies, sent through ANAF's e-Factura over OAuth, with supplier invoices downloaded in the background
  • the mandatory ledgers, kept in real time, with foreign amounts at the daily BNR rate
  • the figures for the D212, D390 and D301 returns, in the order the forms ask for them
  • running CAS, CASS and income tax estimates, plus a free public PFA tax calculator
  • help on every screen that explains the tax rule and cites the article of law

Rebuilt from scratch in 2026, solo, in five months, on TanStack Start, tRPC, Drizzle, PostgreSQL and Bun, self-hosted with Docker and Caddy. Live since October 2026, free while it's being finished, and I use it for my own books.

A Romanian freelancer? Give it a try. Know one? Send them the link.

Everything else

Creator of Mantine DataTable (~500k npm downloads a month), Mantine ContextMenu, tRPC-SvelteKit and PocketBaseUML.
Also built Next.js Parallel Server Actions, Expose-WSL, IISExpress-Proxy and other open-source projects.
On the commercial side, I've been the technical partner behind LeasingSH.ro since 2013.

Mantine DataTable Mantine ContextMenu tRPC-SvelteKit PocketBaseUML

LeasingSH.ro Yadda Boutique Travel

Open to fractional CTO and technical partner roles for early-stage products, and to sweat-equity partnerships where I own the technical side.
Fractional CTO and sweat-equity partner at LeasingSH.ro.
Owner / Jack of all trades @ swapp.ro.
Ex Allianz, National Bank of Greece and AJM FleetPurchase.
Co-owner of Yadda.
Doing stuff at SegmentX.ai/SalesPlay.

OSS activity

@icflorescu on GitHub

Current tech-stack

These days I'm happily using Tailwind too: swapp.ro is Tailwind CSS 4 and shadcn/ui all the way down.

Things I've worked with in the Dark Ages

  • PHP & MySQL, around Y2K (yeah, I've been around a while)
  • Java/J2EE, .NET/C#, Oracle, SQL Server, BizTalk, cca. 2002—2007
  • CoffeeScript & IcedCoffeeScript, back when JS had no async/await
  • Quite a few templating languages such as Mustache or Jade/Pug and some strange old JS frameworks (Backbone, Riot.js) in the pre-React era

Notable open-source projects I've built over the years

  • 📒 Mantine DataTable — a "dark-theme aware" table component for your Mantine UI data-rich applications, featuring asynchronous data loading support, pagination, multiple rows selection, column sorting, custom cell data rendering, row context menu, and more
  • 🖱️ Mantine ContextMenu — a lightweight yet customizable context-menu for your Mantine applications, with a succinct API and dark-theme support
  • 🛠️ Mantine Start and Mantine Next — starter templates for Mantine and TanStack Start / Next.js applications
  • ✨ tRPC-SvelteKit — an adapter allowing you to build end-to-end typesafe APIs with tRPC.io in your SvelteKit applications
  • ✨ tRPC-Transformer — a simple tRPC transformer based on superjson with Decimal.js support
  • ✨ Next.js Parallel Server Actions — run Next.js server actions in parallel: the missing ingredient for a boilerplate-free, tRPC-style server-actions workflow
  • 📦 PocketBaseUML — a free, open-source UML diagram generator for PocketBase that can be used online to connect to HTTPS servers, or run as an npm package to inspect local HTTP servers
  • 🐧 Expose-WSL — probably the easiest way to expose apps running on WSL to local network devices
  • 🌐 IISExpress-Proxy — a simple, yet practical command-line utility enabling .NET developers to test web applications served by IIS Express on remote devices; it's been around since 2015, but I'm amazed by the sheer number of people who still have to use IISExpress nowadays
  • 📖 textdiff-create and textdiff-patch — simple utilities for creating and applying lean text diffs
  • 🛠️ ASPAX — a simple Node.js asset packager inspired by Rails, in 2013, when Webpack didn't exist
  • ⚙️ Node.js, MongoDB, PostgreSQL & MySQL cartridges for Red Hat's OpenShift, in 2014-2015, when Docker wasn't yet a widespread tool

Important

Please consider sponsoring my work if you find it useful.
Dedicating time to build and maintain great open-source projects would not be possible without your generosity.

The long(er) story

You can find my boring, full-length obituary LinkedIn profile at linkedin.com/in/icflorescu, but here's the blurb:

  • 25+ years of experience in web and software development
  • I've worked for various companies (from mid-sized to large multinationals such as Allianz and Garanta — member of National Bank of Greece) during the initial part of my career; since 2008 I've been working independently
  • Technical partner at LeasingSH.ro since 2013, rebuilt three times as the web evolved, keeping the business running through each migration
  • In 2026 I rebuilt swapp.ro from scratch, solo, in five months: invoicing and single-entry accounting for Romanian freelancers, wired into the national e-invoicing system
  • I'm at home in rule-heavy domains (insurance, leasing, tax), where "almost right" means wrong
  • I sometimes rant write about technology and its impact on human behaviour in articles like these

Hobbies, likes & dislikes

❤️ open-source, lazy mornings, good coffee, trekking in the mountains, reading
👎 hypocrisy, xenophobia, willful ignorance, people talking bullshit

Before approaching me for work

I'm interested in fractional CTO and technical partner roles for early-stage products, sweat-equity partnerships where I own the technical side, and selected hands-on work.

You can learn more about what I did over the years by visiting my LinkedIn profile, but since you are on this page, chances are that you already have a pretty good idea of how my skills could be of assistance.
If you want to hire me, please consider that I'm most productive with the aforementioned tech-stack.

Note

I'm currently getting a constant flow of approaches, some of them relevant, others not so relevant1. Therefore, mentioning in your text that you've seen my GitHub profile would:

  • tell me that you know exactly what you need me for (as opposed to just trying to fill a vacant role);
  • let me know that my skills would indeed be valuable for you and would spare us both valuable time that we'd otherwise have to spend in trying to assess that;
  • help me prioritize your message and come up with a quick reply.

How to approach me

Drop me a message at the email address listed in my GitHub profile and we'll schedule a meeting on cal.com/icflorescu.

Footnotes

  1. I'm not really a fan of multistage recruitment processes and taking coding tests.
    My open-source projects are being starred and used by lots of developers and companies worldwide, sum up millions of NPM downloads and my coding skills are, therefore, vetted by the community.
    If you want my help, we will be discussing about project specifics such as its value proposition and how can I contribute to "make it happen", challenges and how to overcome those, risks versus rewards. ↩

Pinned Loading

  1. mantine-datatable mantine-datatable Public

    The table component for your Mantine data-rich applications, supporting asynchronous data loading, column sorting, custom cell data rendering, context menus, nesting, Gmail-style batch row selectio…

    TypeScript 1.3k 104

  2. mantine-contextmenu mantine-contextmenu Public

    Craft your applications for productivity and meet your users’ expectations by enhancing your Mantine-based UIs with a desktop-grade, lightweight yet fully-featured, dark-theme aware context-menu co…

    TypeScript 176 10

  3. trpc-sveltekit trpc-sveltekit Public

    End-to-end typesafe APIs with tRPC.io for your SvelteKit applications.

    TypeScript 835 43

  4. pocketbase-uml/pocketbase-uml.github.io pocketbase-uml/pocketbase-uml.github.io Public

    A free, open-source web application that generates UML diagrams based on PocketBase databases

    Svelte 160 8

  5. expose-wsl expose-wsl Public

    The simplest way to expose apps running on WSL to local network devices.

    JavaScript 143 5

  6. iisexpress-proxy iisexpress-proxy Public

    A simple local proxy for accessing IIS Express from remote machines.

    JavaScript 744 78