{"exhaustive":{"nbHits":false,"typo":false},"exhaustiveNbHits":false,"exhaustiveTypo":false,"hits":[{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"CharlesW"},"title":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["skan","ai"],"value":"AI Stan Lee Debuted at L.A. Comic-Con"},"url":{"matchLevel":"none","matchedWords":[],"value":"https://www.instagram.com/reel/DPN4xLMD8bQ/"}},"_tags":["story","author_CharlesW","story_45454394"],"author":"CharlesW","created_at":"2025-10-02T19:35:07Z","created_at_i":1759433707,"num_comments":0,"objectID":"45454394","points":2,"story_id":45454394,"title":"AI Stan Lee Debuted at L.A. Comic-Con","updated_at":"2026-03-05T22:48:59Z","url":"https://www.instagram.com/reel/DPN4xLMD8bQ/"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"clouddrover"},"title":{"fullyHighlighted":false,"matchLevel":"partial","matchedWords":["ai"],"value":"Bicycle airbag backpack blows up womb-like head and neck protection"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["skan","ai"],"value":"https://newatlas.com/bicycles/in-motion-stan-bicycle-airbag-backpack/"}},"_tags":["story","author_clouddrover","story_34497076"],"author":"clouddrover","created_at":"2023-01-24T00:10:05Z","created_at_i":1674519005,"num_comments":0,"objectID":"34497076","points":3,"story_id":34497076,"title":"Bicycle airbag backpack blows up womb-like head and neck protection","updated_at":"2024-09-20T13:08:23Z","url":"https://newatlas.com/bicycles/in-motion-stan-bicycle-airbag-backpack/"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"kevinSuttle"},"title":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["skan","ai"],"value":"Stan Lee Predicted VR, AI, Self-Driving Cars, and the Internet in 1968"},"url":{"matchLevel":"none","matchedWords":[],"value":"https://twitter.com/kevinSuttle/status/768098349497126912"}},"_tags":["story","author_kevinSuttle","story_12344218"],"author":"kevinSuttle","created_at":"2016-08-23T14:57:52Z","created_at_i":1471964272,"num_comments":0,"objectID":"12344218","points":1,"story_id":12344218,"title":"Stan Lee Predicted VR, AI, Self-Driving Cars, and the Internet in 1968","updated_at":"2024-09-19T23:36:37Z","url":"https://twitter.com/kevinSuttle/status/768098349497126912"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"jruohonen"},"title":{"fullyHighlighted":false,"matchLevel":"partial","matchedWords":["ai"],"value":"Using AI Generated Code"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["skan","ai"],"value":"https://discourse.mc-stan.org/t/using-ai-generated-code/40956"}},"_tags":["story","author_jruohonen","story_47587827"],"author":"jruohonen","created_at":"2026-03-31T14:23:01Z","created_at_i":1774966981,"num_comments":0,"objectID":"47587827","points":1,"story_id":47587827,"title":"Using AI Generated Code","updated_at":"2026-03-31T14:23:41Z","url":"https://discourse.mc-stan.org/t/using-ai-generated-code/40956"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"Apple-Guy"},"story_text":{"matchLevel":"none","matchedWords":[],"value":""},"title":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["skan","ai"],"value":"Acer Stock Dives, as founder Stan Shih says Apple iPad and MacBook Air are a Fad"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["skan","ai"],"value":"http://obamapacman.com/2011/08/acer-founder-stan-shih-calls-ipad-macbook-air-a-fad/"}},"_tags":["story","author_Apple-Guy","story_2851038"],"author":"Apple-Guy","created_at":"2011-08-05T18:11:48Z","created_at_i":1312567908,"num_comments":0,"objectID":"2851038","points":1,"story_id":2851038,"story_text":"","title":"Acer Stock Dives, as founder Stan Shih says Apple iPad and MacBook Air are a Fad","updated_at":"2023-09-06T20:17:12Z","url":"http://obamapacman.com/2011/08/acer-founder-stan-shih-calls-ipad-macbook-air-a-fad/"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"partial","matchedWords":["skan"],"value":"stan_kirdey"},"story_text":{"matchLevel":"none","matchedWords":[],"value":"Hey folks, I've been building Clark solo, with the aim to match Manus agent (I really like it!) in features and capabilities, but also in its relentless ability to just complete tasks while using browser, computer etc. So far I think I've achieved 1:1 core feature parity:\n1) computer use agent\n2) browser use in same thread\n3) wide and deep research - clark calls clark\n4) integration with google tools
Would love to have community feedback and for you to try it out, a couple thousand people already using it daily for very broad use cases.
You can use this referral link, that hopefully works and grants credits :-)
https://www.clarkchat.com/login?ref=CLARK-A10K9Z3Q"},"title":{"fullyHighlighted":false,"matchLevel":"partial","matchedWords":["ai"],"value":"Show HN: Clark \u2013 AI assistant with own computer"},"url":{"matchLevel":"none","matchedWords":[],"value":"https://www.clarkchat.com/"}},"_tags":["story","author_stan_kirdey","story_48886547","show_hn"],"author":"stan_kirdey","created_at":"2026-07-13T00:53:20Z","created_at_i":1783904000,"num_comments":0,"objectID":"48886547","points":4,"story_id":48886547,"story_text":"Hey folks, I've been building Clark solo, with the aim to match Manus agent (I really like it!) in features and capabilities, but also in its relentless ability to just complete tasks while using browser, computer etc. So far I think I've achieved 1:1 core feature parity:\n1) computer use agent\n2) browser use in same thread\n3) wide and deep research - clark calls clark\n4) integration with google tools
Would love to have community feedback and for you to try it out, a couple thousand people already using it daily for very broad use cases.
You can use this referral link, that hopefully works and grants credits :-)
https://www.clarkchat.com/login?ref=CLARK-A10K9Z3Q","title":"Show HN: Clark \u2013 AI assistant with own computer","updated_at":"2026-07-13T14:37:14Z","url":"https://www.clarkchat.com/"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"partial","matchedWords":["ai"],"value":"airhangerf15"},"title":{"fullyHighlighted":false,"matchLevel":"partial","matchedWords":["skan"],"value":"Privacy Guard: You Don't Need to Scan My Drivers License"},"url":{"matchLevel":"none","matchedWords":[],"value":"https://sk500.online/privacy-guard/"}},"_tags":["story","author_airhangerf15","story_49993787"],"author":"airhangerf15","children":[49994113],"created_at":"2026-10-07T15:00:39Z","created_at_i":1791385239,"num_comments":3,"objectID":"49993787","points":3,"story_id":49993787,"title":"Privacy Guard: You Don't Need to Scan My Drivers License","updated_at":"2026-10-08T14:09:24Z","url":"https://sk500.online/privacy-guard/"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"partial","matchedWords":["skan"],"value":"stan_kirdey"},"title":{"fullyHighlighted":false,"matchLevel":"partial","matchedWords":["ai"],"value":"Addition of fine-tuning for large language models in Cerebras AI Model Studio"},"url":{"fullyHighlighted":false,"matchLevel":"partial","matchedWords":["ai"],"value":"https://www.cerebras.net/blog/cerebras-announces-fine-tuning-on-the-cerebras-ai-model-studio"}},"_tags":["story","author_stan_kirdey","story_34885695"],"author":"stan_kirdey","children":[34885696],"created_at":"2023-02-21T19:25:05Z","created_at_i":1677007505,"num_comments":1,"objectID":"34885695","points":3,"story_id":34885695,"title":"Addition of fine-tuning for large language models in Cerebras AI Model Studio","updated_at":"2024-09-20T13:28:28Z","url":"https://www.cerebras.net/blog/cerebras-announces-fine-tuning-on-the-cerebras-ai-model-studio"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"xfer45"},"title":{"fullyHighlighted":false,"matchLevel":"partial","matchedWords":["ai"],"value":"Show HN: An AI-powered micro SEO tool for bloggers"},"url":{"fullyHighlighted":false,"matchLevel":"partial","matchedWords":["skan"],"value":"https://studio.m64.in/seo-stan"}},"_tags":["story","author_xfer45","story_34640145","show_hn"],"author":"xfer45","created_at":"2023-02-03T12:19:11Z","created_at_i":1675426751,"num_comments":0,"objectID":"34640145","points":2,"story_id":34640145,"title":"Show HN: An AI-powered micro SEO tool for bloggers","updated_at":"2024-09-20T13:14:12Z","url":"https://studio.m64.in/seo-stan"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"partial","matchedWords":["skan"],"value":"stan_kirdey"},"title":{"fullyHighlighted":false,"matchLevel":"partial","matchedWords":["ai"],"value":"Pi on Intel's Gaudi3 for Enterprises \u2013 Inflection AI and Intel Partner Up"},"url":{"fullyHighlighted":false,"matchLevel":"partial","matchedWords":["ai"],"value":"https://www.intel.com/content/www/us/en/newsroom/news/inflection-ai-intel-launch-enterprise-ai-system.html"}},"_tags":["story","author_stan_kirdey","story_41768342"],"author":"stan_kirdey","created_at":"2024-10-07T17:17:51Z","created_at_i":1728321471,"num_comments":0,"objectID":"41768342","points":1,"story_id":41768342,"title":"Pi on Intel's Gaudi3 for Enterprises \u2013 Inflection AI and Intel Partner Up","updated_at":"2024-10-07T17:23:06Z","url":"https://www.intel.com/content/www/us/en/newsroom/news/inflection-ai-intel-launch-enterprise-ai-system.html"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"partial","matchedWords":["skan"],"value":"stan_kirdey"},"title":{"fullyHighlighted":false,"matchLevel":"partial","matchedWords":["ai"],"value":"We use AI in games in a compassionate way to support positive mental health"},"url":{"matchLevel":"none","matchedWords":[],"value":"https://vortle.medium.com/vortle-artificial-intelligence-in-games-to-support-positive-mental-health-54f5755d2565"}},"_tags":["story","author_stan_kirdey","story_30565241"],"author":"stan_kirdey","created_at":"2022-03-05T07:23:52Z","created_at_i":1646465032,"num_comments":0,"objectID":"30565241","points":1,"story_id":30565241,"title":"We use AI in games in a compassionate way to support positive mental health","updated_at":"2024-09-20T10:38:43Z","url":"https://vortle.medium.com/vortle-artificial-intelligence-in-games-to-support-positive-mental-health-54f5755d2565"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"malshe"},"title":{"fullyHighlighted":false,"matchLevel":"partial","matchedWords":["skan"],"value":"The legendary Marvel Comics writer, editor and publisher Stan Lee dies at 95"},"url":{"fullyHighlighted":false,"matchLevel":"partial","matchedWords":["ai"],"value":"https://apple.news/AIZCpnoZeTCKbgtKzpuBNkQ"}},"_tags":["story","author_malshe","story_18434789"],"author":"malshe","created_at":"2018-11-12T19:08:00Z","created_at_i":1542049680,"num_comments":0,"objectID":"18434789","points":1,"story_id":18434789,"title":"The legendary Marvel Comics writer, editor and publisher Stan Lee dies at 95","updated_at":"2024-09-20T03:18:06Z","url":"https://apple.news/AIZCpnoZeTCKbgtKzpuBNkQ"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"jorgeoguerra"},"story_text":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["skan","ai"],"value":"Hey HN! We\u2019re Jorge and Will from Lotas (https://www.lotas.ai/), and we\u2019ve built an AI coding assistant into RStudio (think Cursor for RStudio).
RStudio is used by about 2 million data scientists and academics, but they currently lack a coding assistant within their IDE. Developers in other environments benefit from tools like Cursor and Windsurf, but R users don\u2019t have any equivalent tools to speed up their workflow. Since ~80% of R programmers prefer to use RStudio over other IDEs like VSCode to write R code, we figured a tool like this one could be quite useful.
Both of us were PhD students at Harvard. Jorge was in the biophysics program and Will was in the biostatistics program where most people used RStudio every day. We saw how integrated code assistants were taking off in other IDEs, but we noticed that the RStudio integrations were still lagging far behind. Many R users were copying and pasting code from ChatGPT to build their workflows, and this was clearly slow and fragile.
To bring the Cursor-like experience to RStudio users, we built Rao (https://www.lotas.ai/): a fork of RStudio with an embedded AI assistant that is aware of the user\u2019s local context (both files and variable environment), can read and write files, can run code or commands, and can interpret textual or visual output. It works with any of the file formats already in RStudio (R, notebooks including RMDs and QMDs, Python, Stan, etc.), allowing R programmers to iteratively perform entire data analyses inside their preferred IDE.
Other AI data science tools are either (1) built on the web or in environments people don\u2019t already use, (2) are completely focused on python notebooks, or (3) are weak package-based assistants with limited functionality. Rao is exactly like the RStudio IDE that millions of data scientists already use, but it incorporates a powerful AI assistant and works with all the standard file types.
You can download Rao at https://www.lotas.ai/download, watch our demo on the homepage (https://www.lotas.ai/), and work through some example use cases on our GitHub (https://github.com/lotas-ai/rao/tree/main/demos). We have a one-week free trial (no card required) and provide 500 queries/month for $20/month after that. We\u2019d love to hear feedback from the HN community to make Rao as useful as possible!\nYou can reach us at founders@lotas.ai.
P.S. We have zero data retention (ZDR) agreements with OpenAI and Anthropic, but we currently recommend users do not input sensitive or regulated data like PHI into Rao until we sign BAAs with both model providers. For more information on our security practices, please visit the security page on our website https://www.lotas.ai/security."},"title":{"matchLevel":"none","matchedWords":[],"value":"Show HN: Lotas \u2013 Cursor for RStudio"},"url":{"fullyHighlighted":false,"matchLevel":"partial","matchedWords":["ai"],"value":"https://www.lotas.ai/"}},"_tags":["story","author_jorgeoguerra","story_44638510","show_hn"],"author":"jorgeoguerra","children":[44638768,44639363,44639395,44639446,44639825,44639893,44640022,44640289,44640292,44641210,44641807,44642186,44645069,44647379],"created_at":"2025-07-21T18:16:10Z","created_at_i":1753121770,"num_comments":28,"objectID":"44638510","points":82,"story_id":44638510,"story_text":"Hey HN! We\u2019re Jorge and Will from Lotas (https://www.lotas.ai/), and we\u2019ve built an AI coding assistant into RStudio (think Cursor for RStudio).
RStudio is used by about 2 million data scientists and academics, but they currently lack a coding assistant within their IDE. Developers in other environments benefit from tools like Cursor and Windsurf, but R users don\u2019t have any equivalent tools to speed up their workflow. Since ~80% of R programmers prefer to use RStudio over other IDEs like VSCode to write R code, we figured a tool like this one could be quite useful.
Both of us were PhD students at Harvard. Jorge was in the biophysics program and Will was in the biostatistics program where most people used RStudio every day. We saw how integrated code assistants were taking off in other IDEs, but we noticed that the RStudio integrations were still lagging far behind. Many R users were copying and pasting code from ChatGPT to build their workflows, and this was clearly slow and fragile.
To bring the Cursor-like experience to RStudio users, we built Rao (https://www.lotas.ai/): a fork of RStudio with an embedded AI assistant that is aware of the user\u2019s local context (both files and variable environment), can read and write files, can run code or commands, and can interpret textual or visual output. It works with any of the file formats already in RStudio (R, notebooks including RMDs and QMDs, Python, Stan, etc.), allowing R programmers to iteratively perform entire data analyses inside their preferred IDE.
Other AI data science tools are either (1) built on the web or in environments people don\u2019t already use, (2) are completely focused on python notebooks, or (3) are weak package-based assistants with limited functionality. Rao is exactly like the RStudio IDE that millions of data scientists already use, but it incorporates a powerful AI assistant and works with all the standard file types.
You can download Rao at https://www.lotas.ai/download, watch our demo on the homepage (https://www.lotas.ai/), and work through some example use cases on our GitHub (https://github.com/lotas-ai/rao/tree/main/demos). We have a one-week free trial (no card required) and provide 500 queries/month for $20/month after that. We\u2019d love to hear feedback from the HN community to make Rao as useful as possible!\nYou can reach us at founders@lotas.ai.
P.S. We have zero data retention (ZDR) agreements with OpenAI and Anthropic, but we currently recommend users do not input sensitive or regulated data like PHI into Rao until we sign BAAs with both model providers. For more information on our security practices, please visit the security page on our website https://www.lotas.ai/security.","title":"Show HN: Lotas \u2013 Cursor for RStudio","updated_at":"2026-05-13T09:53:19Z","url":"https://www.lotas.ai/"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"shg5004"},"story_text":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["skan","ai"],"value":"I been lurking and reading around hacker news for sometime with and without a ycombinator account. I figure I add to the discussion and see what you all think.
I\u2019m a recent The Pennsylvania State University Marketing / Management graduate and I have start-up ideas, dreams, and aspirations.
I want to talk about the clich\u00e9 of being the business guy do start-ups need us that much for marketing, paperwork, and sales; as much as they need coders?
One of my goals is to work for a start-up or be a founding member in one.
For the people reading people who have worked in or with a startup, when does the idea or project need the business people?
I been searching on the jobs thing here, I seen an opportunity with airbnb.com but I was running my small business here in Philadelphia, only to have it die due to The State of Pennsylvania having a budget crisis and me realizing that was the industry for me or my passion.
I was working on a project with a friend who is Majoring in Computer Science @ PSU. He\u2019s in his final semester, we were trying to get to alpha by September. Since he is in his final semester and working crazy hours at the PSU IST Help desk, he hasn\u2019t been working on it as much as he was before school started back up.
As the business guy I want to get it to alpha so I can get feedback and develop marketing plans, etc. I want to go-go-go; being 200 miles apart doesn\u2019t help (Philadelphia-to-State College), I don\u2019t want to slave drive him because when he was coding I felt bad I couldn\u2019t contribute to what matter most developing the site.
Coders reading what do you think about that?
Fallacy of a good idea: Gotta implement before someone else does or you will be left in the dust. I am trying to teach myself the basics, such as HTML with hopes of going to PHP so I can contribute but that will take time.
For you hackers reading my question is where do I start? I understand it can be a rough and rugged road to learning
This is my first post, I hope it isn\u2019t to long and I am looking forward to discussion.
Stan"},"title":{"matchLevel":"none","matchedWords":[],"value":"Clich\u00e9 of the Business Guy"},"url":{"matchLevel":"none","matchedWords":[],"value":""}},"_tags":["story","author_shg5004","story_916214","ask_hn"],"author":"shg5004","children":[916226,916273,916554],"created_at":"2009-11-02T05:19:04Z","created_at_i":1257139144,"num_comments":3,"objectID":"916214","points":4,"story_id":916214,"story_text":"I been lurking and reading around hacker news for sometime with and without a ycombinator account. I figure I add to the discussion and see what you all think.
I\u2019m a recent The Pennsylvania State University Marketing / Management graduate and I have start-up ideas, dreams, and aspirations.
I want to talk about the clich\u00e9 of being the business guy do start-ups need us that much for marketing, paperwork, and sales; as much as they need coders?
One of my goals is to work for a start-up or be a founding member in one.
For the people reading people who have worked in or with a startup, when does the idea or project need the business people?
I been searching on the jobs thing here, I seen an opportunity with airbnb.com but I was running my small business here in Philadelphia, only to have it die due to The State of Pennsylvania having a budget crisis and me realizing that was the industry for me or my passion.
I was working on a project with a friend who is Majoring in Computer Science @ PSU. He\u2019s in his final semester, we were trying to get to alpha by September. Since he is in his final semester and working crazy hours at the PSU IST Help desk, he hasn\u2019t been working on it as much as he was before school started back up.
As the business guy I want to get it to alpha so I can get feedback and develop marketing plans, etc. I want to go-go-go; being 200 miles apart doesn\u2019t help (Philadelphia-to-State College), I don\u2019t want to slave drive him because when he was coding I felt bad I couldn\u2019t contribute to what matter most developing the site.
Coders reading what do you think about that?
Fallacy of a good idea: Gotta implement before someone else does or you will be left in the dust. I am trying to teach myself the basics, such as HTML with hopes of going to PHP so I can contribute but that will take time.
For you hackers reading my question is where do I start? I understand it can be a rough and rugged road to learning
This is my first post, I hope it isn\u2019t to long and I am looking forward to discussion.
Stan","title":"Clich\u00e9 of the Business Guy","updated_at":"2023-09-06T20:12:14Z","url":""},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"partial","matchedWords":["skan"],"value":"stan_stork"},"story_text":{"fullyHighlighted":false,"matchLevel":"partial","matchedWords":["ai"],"value":"Paganel comes from an old work problem: I had a large schema migration with lots of transformations and several environments to check. One of the main requirements was to validate whether the data had moved correctly, and I was not allowed to use any SaaS tools because it was forbidden for data to leave our network. Since I couldn't find any air-gapped tool that could do both the transformation and the verification (basic row counts aren't enough for transformed data), I had to write custom scripts for the entire process.
Ever since then, the idea of automating complex migrations has stuck in my head, which led me to start building Paganel a year and a half ago.
In Paganel, a migration is just a single declarative file. You specify where the data comes from and where it's going, and the rest goes in the same file: joins, filters, computed fields, and validation rules.
If you are missing a specific source, sink, transform, or filter, you can easily extend Paganel by writing your own WASM plugin in Rust or JS. These execute inside a strict sandbox, so they don't have any filesystem or network access unless you allow it in the migration config.
I also wanted to make large migrations simple, so before running a real migration, you can run pag plan to review the output schema, the DDL, and the time and memory estimates. You can also use the plan to see a sample of real rows. They get processed through the whole pipeline, which gives you absolute clarity on what will actually be inserted.
One of the biggest challenges isn't just doing the migration, but verifying that everything actually moved correctly. For that, there is the --integrity flag. Pass it, and Paganel hashes the rows on the fly as they migrate, storing those hashes on disk, keyed by primary key. After the run, it uses them to spit out a 32-byte root hash for the table. Together with the row hashes, this gives you a complete 'migration receipt.'
Minutes or weeks later, you can run pag verify, and it re-reads the destination, recomputes the hashes and compares them with the receipt, without connecting to the source. When the root doesn't match, you know something changed, and then verify goes through the row hashes and tells you which rows it was.
It tells you that the destination still contains what Paganel wrote, but it can't tell you whether the transformation itself was correct.
Another huge factor is migration speed. I created a small benchmark to measure Paganel's speed and tested it on a 100M-row migration from MySQL to PostgreSQL (with the databases on separate servers). With the default config, which is a single stream, I got about 390k rows a second. Splitting the table into four parallel streams got it to almost 940k. The number of streams is configurable for tables with an integer primary key. Enabling the --integrity flag does add some overhead, dropping those numbers to 340k and 670k, respectively.
Paganel is still pre-v1.0, so there are some rough edges to be aware of:
- No CDC yet: Currently, it only handles batch processing. Continuous sync with verification is the ultimate goal, but nailing the batch engine comes first.
- Limited databases: Right now, Paganel only natively supports MySQL and PostgreSQL.
- API changes: The project is under heavy development, meaning the config syntax might change slightly from release to release.
- One-man team: I'm developing this solo. You will likely run into edge cases I haven't caught yet.
- Platform testing: The full integration suite and all my own manual testing run on Linux. macOS and Windows get pre-built binaries too, but they only go through a basic smoke test.
If you want to try it out, the quickstart in the README will spin up some sample databases in Docker for you.
How do you verify migrations today? I'd like to know whether a receipt like this would fit into how you work."},"title":{"matchLevel":"none","matchedWords":[],"value":"Show HN: Paganel \u2013 Data migration with a receipt you can verify later"},"url":{"matchLevel":"none","matchedWords":[],"value":"https://github.com/stanstork/paganel"}},"_tags":["story","author_stan_stork","story_49977297","show_hn"],"author":"stan_stork","children":[49978051,49983777],"created_at":"2026-10-06T12:12:00Z","created_at_i":1791288720,"num_comments":0,"objectID":"49977297","points":3,"story_id":49977297,"story_text":"Paganel comes from an old work problem: I had a large schema migration with lots of transformations and several environments to check. One of the main requirements was to validate whether the data had moved correctly, and I was not allowed to use any SaaS tools because it was forbidden for data to leave our network. Since I couldn't find any air-gapped tool that could do both the transformation and the verification (basic row counts aren't enough for transformed data), I had to write custom scripts for the entire process.
Ever since then, the idea of automating complex migrations has stuck in my head, which led me to start building Paganel a year and a half ago.
In Paganel, a migration is just a single declarative file. You specify where the data comes from and where it's going, and the rest goes in the same file: joins, filters, computed fields, and validation rules.
If you are missing a specific source, sink, transform, or filter, you can easily extend Paganel by writing your own WASM plugin in Rust or JS. These execute inside a strict sandbox, so they don't have any filesystem or network access unless you allow it in the migration config.
I also wanted to make large migrations simple, so before running a real migration, you can run pag plan to review the output schema, the DDL, and the time and memory estimates. You can also use the plan to see a sample of real rows. They get processed through the whole pipeline, which gives you absolute clarity on what will actually be inserted.
One of the biggest challenges isn't just doing the migration, but verifying that everything actually moved correctly. For that, there is the --integrity flag. Pass it, and Paganel hashes the rows on the fly as they migrate, storing those hashes on disk, keyed by primary key. After the run, it uses them to spit out a 32-byte root hash for the table. Together with the row hashes, this gives you a complete 'migration receipt.'
Minutes or weeks later, you can run pag verify, and it re-reads the destination, recomputes the hashes and compares them with the receipt, without connecting to the source. When the root doesn't match, you know something changed, and then verify goes through the row hashes and tells you which rows it was.
It tells you that the destination still contains what Paganel wrote, but it can't tell you whether the transformation itself was correct.
Another huge factor is migration speed. I created a small benchmark to measure Paganel's speed and tested it on a 100M-row migration from MySQL to PostgreSQL (with the databases on separate servers). With the default config, which is a single stream, I got about 390k rows a second. Splitting the table into four parallel streams got it to almost 940k. The number of streams is configurable for tables with an integer primary key. Enabling the --integrity flag does add some overhead, dropping those numbers to 340k and 670k, respectively.
Paganel is still pre-v1.0, so there are some rough edges to be aware of:
- No CDC yet: Currently, it only handles batch processing. Continuous sync with verification is the ultimate goal, but nailing the batch engine comes first.
- Limited databases: Right now, Paganel only natively supports MySQL and PostgreSQL.
- API changes: The project is under heavy development, meaning the config syntax might change slightly from release to release.
- One-man team: I'm developing this solo. You will likely run into edge cases I haven't caught yet.
- Platform testing: The full integration suite and all my own manual testing run on Linux. macOS and Windows get pre-built binaries too, but they only go through a basic smoke test.
If you want to try it out, the quickstart in the README will spin up some sample databases in Docker for you.
How do you verify migrations today? I'd like to know whether a receipt like this would fit into how you work.","title":"Show HN: Paganel \u2013 Data migration with a receipt you can verify later","updated_at":"2026-10-06T20:40:47Z","url":"https://github.com/stanstork/paganel"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"partial","matchedWords":["skan"],"value":"stan_kirdey"},"title":{"matchLevel":"none","matchedWords":[],"value":"Haystack PromptHub \u2013 OSS collection of LLM prompts"},"url":{"fullyHighlighted":false,"matchLevel":"partial","matchedWords":["ai"],"value":"https://prompthub.deepset.ai/"}},"_tags":["story","author_stan_kirdey","story_36532282"],"author":"stan_kirdey","created_at":"2023-06-30T09:14:58Z","created_at_i":1688116498,"num_comments":0,"objectID":"36532282","points":33,"story_id":36532282,"title":"Haystack PromptHub \u2013 OSS collection of LLM prompts","updated_at":"2024-09-20T14:24:50Z","url":"https://prompthub.deepset.ai/"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"anjalik"},"title":{"matchLevel":"none","matchedWords":[],"value":"Parking robot"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["skan","ai"],"value":"http://www.foxnews.com/auto/2017/05/25/stan-robotic-parking-valet-gets-to-work-at-paris-airport.html"}},"_tags":["story","author_anjalik","story_14430303"],"author":"anjalik","created_at":"2017-05-27T14:52:26Z","created_at_i":1495896746,"num_comments":0,"objectID":"14430303","points":1,"story_id":14430303,"title":"Parking robot","updated_at":"2024-09-20T00:51:12Z","url":"http://www.foxnews.com/auto/2017/05/25/stan-robotic-parking-valet-gets-to-work-at-paris-airport.html"}],"hitsPerPage":50,"nbHits":17,"nbPages":1,"page":0,"params":"query=Skan+AI&tags=story&hitsPerPage=50&advancedSyntax=true&analyticsTags=backend","processingTimeMS":4,"processingTimingsMS":{"_request":{"roundTrip":16},"afterFetch":{"format":{"total":1}},"fetch":{"query":1,"total":2},"total":4},"query":"Skan AI","serverTimeMS":5}